﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace IDotNet.MapLibs.Web.Model
{
    /// <summary>
    /// 在地图上标注点范围时的请求参数
    /// </summary>
    public class MapDrawAreaRequestModel
    {
        /// <summary>
        /// 所有待标注点
        /// </summary>
        public List<MapBelong> mapBelongs { get; set; }

        /// <summary>
        /// 已标注点的信息
        /// </summary>
        public List<MapData> mapData { get; set; }

        /// <summary>
        /// 默认画图形的样式
        /// </summary>
        public MapDrawOption mapDrawOption { get; set; }

        private string _mapCity = "深圳";
        /// <summary>
        /// 地图初始化城市
        /// </summary>
        public string MapCity
        {
            get { return _mapCity; }
            set { _mapCity = value; }
        }



        private int mapZoom = 15;
        /// <summary>
        /// 地图缩放级别（默认为15）
        /// </summary>
        public int MapZoom
        {
            get { return mapZoom; }
            set { mapZoom = value; }
        }


        /// <summary>
        /// 修改点之后跳转的页面
        /// </summary>
        public string ReturnUrl { get; set; }

        /// <summary>
        /// 调用方式（0:Web调用； 1：WinForm调用）
        /// </summary>
        public int FromType { get; set; }
    }

    /// <summary>
    /// 在地图上标注后返回的信息
    /// </summary>
    public class MapDrawAreaResultModel
    {
        /// <summary>
        /// 已标注点的信息
        /// </summary>
        public List<MapData> mapData { get; set; }
    }

    /// <summary>
    /// 待标注点范围（mapId为标注点唯一标识）
    /// </summary>
    public class MapBelong
    {
        /// <summary>
        /// 下拉列表中option的text值
        /// </summary>
        public string text { get; set; }

        /// <summary>
        /// 下拉列表中option的value值(标注点唯一标识,对应后面MapData的mapId)
        /// </summary>
        public string mapId { get; set; }

        /// <summary>
        /// 在地图上标识后显示的名称（默认显示text）
        /// </summary>
        public string label { get; set; }
    }

    /// <summary>
    /// 标注点在地图上坐标信息（一个点可能会有多个区域）
    /// </summary>
    public class MapData
    {
        /// <summary>
        /// 标注点唯一标识
        /// </summary>
        public string mapId { get; set; }

        /// <summary>
        /// 一个点可能会有多个区域
        /// </summary>
        public List<MapAreaData> datas { get; set; }
    }

    /// <summary>
    /// 地图一片区域的位置信息
    /// </summary>
    public class MapAreaData
    {
        /// <summary>
        /// 坐标集合
        /// </summary>
        public List<PointModel> paths { get; set; }

        /// <summary>
        /// 标注点在地图上的位置
        /// </summary>
        public PointModel center { get; set; }

        /// <summary>
        /// 在地图上画区域时的属性
        /// </summary>
        public MapDrawOption opts { get; set; }
    }


    /// <summary>
    /// 在地图上画区域时的属性
    /// </summary>
    public class MapDrawOption
    {
        /// <summary>
        /// 填充颜色
        /// </summary>
        public string fillColor { get; set; }

        /// <summary>
        /// 边线颜色
        /// </summary>
        public string strokeColor { get; set; }
    }

}
